package com.durian.affairs.api.domain;

import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import com.durian.common.core.annotation.Excel;
import com.durian.common.core.web.domain.BaseEntity;

/**
 * 收付款支付订单及业务关联对象 t_cw_pay_order_detail
 * 
 * @author durian
 * @date 2022-06-27
 */
@Data
public class CwPayOrderDetail extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 主键id */
    private Long id;

    /** 支付订单ID */
    @Excel(name = "支付订单ID")
    private Long payOrderId;

    /** 支付订单号 */
    @Excel(name = "支付订单号")
    private String payOrderNo;

    /** 业务订单ID(收付款计划) */
    @Excel(name = "业务订单ID(收付款计划)")
    private Long businessOrderPlanId;

    /** 业务订单号(收付款计划) */
    @Excel(name = "业务订单号(收付款计划)")
    private String businessOrderPlanNo;

    /** 操作类型：1：充值（企业充值），2：提现（企业提现），3：收款（企业收款计划），4：付款（企付款款计划） */
    @Excel(name = "操作类型：1：充值", readConverterExp = "企=业充值")
    private Integer businessOrderType;

    /** 收付款计划金额 */
    @Excel(name = "收付款计划金额")
    private BigDecimal businessOrderAmount;

    /** 商户id（由于暂时无法确定一次支付是否可能包含多个商户，故商户信息暂时加在支付订单明细中）
不同于流水表中的USERID，这里只记录相关的商户ID（流水表中的userid有可能是商户ID，也可能是租客ID） */
    @Excel(name = "商户id", readConverterExp = "由=于暂时无法确定一次支付是否可能包含多个商户，故商户信息暂时加在支付订单明细中")
    private Long businessId;

    /** 商户名 */
    @Excel(name = "商户名")
    private String businessName;

    /** 商户可结算金额（入金的时候，可以结算给商户虚拟账户的金额，比如商户充值金额，租户缴费金额，对账和结算时候用, 为0的时候，表示没有结算金额） */
    @Excel(name = "商户可结算金额", readConverterExp = "入=金的时候，可以结算给商户虚拟账户的金额，比如商户充值金额，租户缴费金额，对账和结算时候用,,为=0的时候，表示没有结算金额")
    private BigDecimal canClearingAmount;

    /** 备注 */
    @Excel(name = "备注")
    private String remarks;

    /** 预留字段1 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "预留字段1", width = 30, dateFormat = "yyyy-MM-dd")
    private Date reserve1;

    /** 预留字段2 */
    @Excel(name = "预留字段2")
    private Long reserve2;

    /** 预留字段3 */
    @Excel(name = "预留字段3")
    private String reserve3;

    /** 预留字段4 */
    @Excel(name = "预留字段4")
    private String reserve4;

    /** 预留字段5 */
    @Excel(name = "预留字段5")
    private String reserve5;

    /** 删除标识。0:未删除，1：删除 */
    @Excel(name = "删除标识。0:未删除，1：删除")
    private Integer delFlg;

    /** 创建用户ID */
    @Excel(name = "创建用户ID")
    private Long createUserid;

    /** 更新用户ID */
    @Excel(name = "更新用户ID")
    private Long updateUserid;
}
